<!DOCTYPE html>
<html>
<head>
  <title>IGraphClient.java</title>
  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
  <link rel='stylesheet' type='text/css' href='../../../../../coverage.css'/>
  <link rel='shortcut icon' type='image/png' href='../../../../../logo.png'/>
  <script type='text/javascript' src='../../../../../coverage.js'></script>
  <script type='text/javascript' src='../../../../../prettify.js'></script>
</head>
<body onload='prettyPrint()'>
  <table cellpadding='0' cellspacing='1'>
    <caption>igraph_client_java/src/main/java/com/taobao/igraph/client/core/IGraphClient.java</caption>
    <tr>
      <td class='line'>1</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>package com.taobao.igraph.client.core;</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td><pre class='imports prettyprint' onclick='showHideLines(this)'><div>import com.taobao.igraph.client.common.IGraphUpdateException;
import com.taobao.igraph.client.common.URLCodecUtil;
import com.taobao.igraph.client.common.VIPServerException;
import com.taobao.igraph.client.config.IGraphClientConfig;
import com.taobao.igraph.client.core.model.*;
import com.taobao.igraph.vipserver.client.core.Host;
import com.taobao.igraph.vipserver.client.core.VIPClient;
import lombok.NonNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
</div><span>import ...</span></pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>19</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>public class IGraphClient {</pre></td>
    </tr>
    <tr>
      <td class='line'>20</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l20s0'>    private static final Logger log = LoggerFactory.getLogger(IGraphClient.class);</pre></td>
    </tr>
    <tr>
      <td class='line'>21</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private static final String KEY_TRACE_ID = "tb_eagleeye_traceid";</pre></td>
    </tr>
    <tr>
      <td class='line'>22</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private static final String KEY_RPC_ID = "tb_eagleeye_rpcid";</pre></td>
    </tr>
    <tr>
      <td class='line'>23</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private IGraphRequester requester;</pre></td>
    </tr>
    <tr>
      <td class='line'>24</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private IGraphClientConfig config;</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>26</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>    <span id='l26s0' title='Executions: 1' class='covered'>IGraphClient(@NonNull IGraphClientConfig config, @NonNull IGraphRequester requester) {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>27</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l27s0'>        this.config = config;</pre></td>
    </tr>
    <tr>
      <td class='line'>28</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l28s0'>        this.requester = requester;</pre></td>
    </tr>
    <tr>
      <td class='line'>29</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l29s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * @param queries
     *            一个或多个query
     * @return 请求结果
     * @throws Exception
     *             所有的错误将会以异常的形式给出
     * @see #search(RequestContext, PGQuery...)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>39</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>    <span id='l39s0' title='Executions: 1' class='covered'>public QueryResult search(@NonNull PGQuery... queries) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>40</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l40s0'>        return search(null, queries);</pre></td>
    </tr>
    <tr>
      <td class='line'>41</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * @param requestContext
     *            与这次请求相关的Context
     * @param queries
     *            一个或多个query
     * @return 请求结果
     * @throws Exception
     *             所有的错误将会以异常的形式给出
     * @see #search(PGQuery...)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>53</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>    <span id='l53s0' title='Executions: 1' class='covered'>public QueryResult search(RequestContext requestContext, @NonNull PGQuery... queries) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>54</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>        <span id='l54s0' title='Executions: 1' class='covered'>if (requestContext == null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>55</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l55s0'>            requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>56</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>57</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l57s0'>        requestContext.setRpcMethodName(RequestContext.RpcMethodSet.PG.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>58</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l58s0'>        requestContext.startRpc(config.isAutoNewTrace());</pre></td>
    </tr>
    <tr>
      <td class='line'>59</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l59s0'>        requestContext.beginQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>60</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l60s0'>        StringBuilder ss = new StringBuilder();</pre></td>
    </tr>
    <tr>
      <td class='line'>61</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l61s0'>        ss.append(config.getPgConfig().getConfigString()).append("&&");</pre></td>
    </tr>
    <tr>
      <td class='line'>62</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l62s0'>        boolean isFirst = true;</pre></td>
    </tr>
    <tr>
      <td class='line'>63</td><td class='count'>2</td>
      <td><pre class='prettyprint jmp'>        <span id='l63s0' title='Executions: 2' class='covered'>for (PGQuery query</span> : <span id='l63s1' title='Executions: 1' class='covered'>queries)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>64</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>            <span id='l64s0' title='Executions: 1' class='covered'>if (isFirst)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>65</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l65s0'>                isFirst = false;</pre></td>
    </tr>
    <tr>
      <td class='line'>66</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            } else {</pre></td>
    </tr>
    <tr>
      <td class='line'>67</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l67s0'>                ss.append("||");</pre></td>
    </tr>
    <tr>
      <td class='line'>68</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            }</pre></td>
    </tr>
    <tr>
      <td class='line'>69</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l69s0'>            ss.append(query.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>70</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>71</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l71s0'>        String requestContent = buildSearchRequest(ss.toString(), Type.PG.toString(), Type.PG,</pre></td>
    </tr>
    <tr>
      <td class='line'>72</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                requestContext.getTraceId(), requestContext.getRpcId());</pre></td>
    </tr>
    <tr>
      <td class='line'>73</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l73s0'>        requestContext.setRequestContent(requestContent);</pre></td>
    </tr>
    <tr>
      <td class='line'>74</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l74s0'>        requestContext.endQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>75</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l75s0'>        requestContext.setServerAddress(getSearchHost());</pre></td>
    </tr>
    <tr>
      <td class='line'>76</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l76s0'>        requestContext.setTraceInHeader(config.isTraceInHeader());</pre></td>
    </tr>
    <tr>
      <td class='line'>77</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l77s0'>        QueryResult queryResult = requester.sendSearchRequest(requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>78</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>        <span id='l78s0' title='Executions: 1' class='covered'>if (log.isDebugEnabled())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>79</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l79s0'>            log.debug("search finished, with requestContext:[{}]", requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>80</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>81</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l81s0'>        return queryResult;</pre></td>
    </tr>
    <tr>
      <td class='line'>82</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>84</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    @Deprecated</pre></td>
    </tr>
    <tr>
      <td class='line'>85</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l85s0' title='Executions: 0' class='uncovered'>public QueryResult fastAtomicSearch(@NonNull AtomicQuery... queries) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>86</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l86s0'>        return fastAtomicSearch(null, queries);</pre></td>
    </tr>
    <tr>
      <td class='line'>87</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>89</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    @Deprecated</pre></td>
    </tr>
    <tr>
      <td class='line'>90</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l90s0' title='Executions: 0' class='uncovered'>public QueryResult fastAtomicSearch(RequestContext requestContext, @NonNull AtomicQuery... queries)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>91</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws Exception {</pre></td>
    </tr>
    <tr>
      <td class='line'>92</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l92s0' title='Executions: 0' class='uncovered'>if (requestContext == null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>93</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l93s0'>            requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>94</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>95</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l95s0'>        requestContext.setRpcMethodName(RequestContext.RpcMethodSet.ATOMIC.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>96</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l96s0'>        requestContext.startRpc(config.isAutoNewTrace());</pre></td>
    </tr>
    <tr>
      <td class='line'>97</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l97s0'>        requestContext.beginQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>98</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l98s0'>        StringBuilder ss = new StringBuilder();</pre></td>
    </tr>
    <tr>
      <td class='line'>99</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l99s0'>        ss.append("/app?app=simple_app&src=").append(config.getSrc()).append("&ip=").append(config.getLocalAddress());</pre></td>
    </tr>
    <tr>
      <td class='line'>100</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l100s0'>        appendTraceId(ss, requestContext.getTraceId(), requestContext.getRpcId())</pre></td>
    </tr>
    <tr>
      <td class='line'>101</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                .append('?');</pre></td>
    </tr>
    <tr>
      <td class='line'>102</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l102s0'>        boolean isFirst = true;</pre></td>
    </tr>
    <tr>
      <td class='line'>103</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l103s0' title='Executions: 0' class='uncovered'>for (AtomicQuery query</span> : <span id='l103s1' title='Executions: 0' class='uncovered'>queries)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>104</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>            <span id='l104s0' title='Executions: 0' class='uncovered'>if (isFirst)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>105</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l105s0'>                isFirst = false;</pre></td>
    </tr>
    <tr>
      <td class='line'>106</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            } else {</pre></td>
    </tr>
    <tr>
      <td class='line'>107</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l107s0'>                ss.append(";");</pre></td>
    </tr>
    <tr>
      <td class='line'>108</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            }</pre></td>
    </tr>
    <tr>
      <td class='line'>109</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l109s0'>            ss.append(query.toFastQuery());</pre></td>
    </tr>
    <tr>
      <td class='line'>110</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>111</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l111s0'>        requestContext.setRequestContent(ss.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>112</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l112s0'>        requestContext.endQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>113</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l113s0'>        requestContext.setServerAddress(getSearchHost());</pre></td>
    </tr>
    <tr>
      <td class='line'>114</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l114s0'>        requestContext.setTraceInHeader(config.isTraceInHeader());</pre></td>
    </tr>
    <tr>
      <td class='line'>115</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l115s0'>        QueryResult queryResult = requester.sendSearchRequest(requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>116</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l116s0' title='Executions: 0' class='uncovered'>if (log.isDebugEnabled())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>117</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l117s0'>            log.debug("search finished, with requestContext:[{}]", requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>118</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>119</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l119s0'>        return queryResult;</pre></td>
    </tr>
    <tr>
      <td class='line'>120</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>122</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    @Deprecated</pre></td>
    </tr>
    <tr>
      <td class='line'>123</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l123s0' title='Executions: 0' class='uncovered'>public QueryResult upsSearch(@NonNull AtomicQuery... queries) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>124</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l124s0'>        return upsSearch(null, queries);</pre></td>
    </tr>
    <tr>
      <td class='line'>125</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>127</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    @Deprecated</pre></td>
    </tr>
    <tr>
      <td class='line'>128</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l128s0' title='Executions: 0' class='uncovered'>public QueryResult upsSearch(RequestContext requestContext, @NonNull AtomicQuery... queries) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>129</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l129s0' title='Executions: 0' class='uncovered'>if (requestContext == null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>130</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l130s0'>            requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>131</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>132</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l132s0'>        requestContext.setRpcMethodName(RequestContext.RpcMethodSet.COMP.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>133</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l133s0'>        requestContext.startRpc(config.isAutoNewTrace());</pre></td>
    </tr>
    <tr>
      <td class='line'>134</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l134s0'>        String traceId = requestContext.getTraceId();</pre></td>
    </tr>
    <tr>
      <td class='line'>135</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l135s0'>        String rpcId = requestContext.getRpcId();</pre></td>
    </tr>
    <tr>
      <td class='line'>136</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l136s0'>        requestContext.beginQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>137</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l137s0'>        StringBuilder ss = new StringBuilder();</pre></td>
    </tr>
    <tr>
      <td class='line'>138</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l138s0'>        ss.append("/app?");</pre></td>
    </tr>
    <tr>
      <td class='line'>139</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l139s0'>        boolean isFirst = true;</pre></td>
    </tr>
    <tr>
      <td class='line'>140</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l140s0' title='Executions: 0' class='uncovered'>for (AtomicQuery query</span> : <span id='l140s1' title='Executions: 0' class='uncovered'>queries)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>141</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>            <span id='l141s0' title='Executions: 0' class='uncovered'>if (isFirst)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>142</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l142s0'>                isFirst = false;</pre></td>
    </tr>
    <tr>
      <td class='line'>143</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            } else {</pre></td>
    </tr>
    <tr>
      <td class='line'>144</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l144s0'>                ss.append(";");</pre></td>
    </tr>
    <tr>
      <td class='line'>145</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            }</pre></td>
    </tr>
    <tr>
      <td class='line'>146</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l146s0'>            ss.append("app=_get&outfmt=pgpb&src=").append(config.getSrc()).append("&ip=")</pre></td>
    </tr>
    <tr>
      <td class='line'>147</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                    .append(config.getLocalAddress());</pre></td>
    </tr>
    <tr>
      <td class='line'>148</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l148s0'>            appendTraceId(ss, traceId, rpcId).append('&').append(query.toGetQuery());</pre></td>
    </tr>
    <tr>
      <td class='line'>149</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>150</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l150s0'>        requestContext.setRequestContent(ss.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>151</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l151s0'>        requestContext.endQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>152</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l152s0'>        requestContext.setServerAddress(getSearchHost());</pre></td>
    </tr>
    <tr>
      <td class='line'>153</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l153s0'>        requestContext.setTraceInHeader(config.isTraceInHeader());</pre></td>
    </tr>
    <tr>
      <td class='line'>154</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l154s0'>        QueryResult queryResult = requester.sendSearchRequest(requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>155</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l155s0' title='Executions: 0' class='uncovered'>if (log.isDebugEnabled())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>156</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l156s0'>            log.debug("search finished, with requestContext:[{}]", requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>157</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>158</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l158s0'>        return queryResult;</pre></td>
    </tr>
    <tr>
      <td class='line'>159</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * @param rdfQuery
     * @return 请求结果
     * @throws Exception
     *             所有的错误将会以异常的形式给出
     * @see #search(RequestContext, RDFQuery)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>168</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l168s0' title='Executions: 0' class='uncovered'>public QueryResult search(@NonNull RDFQuery rdfQuery) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>169</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l169s0'>        return search(null, rdfQuery);</pre></td>
    </tr>
    <tr>
      <td class='line'>170</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * @param requestContext
     *            与这次请求相关的Context
     * @param rdfQuery
     * @return 请求结果
     * @throws Exception
     *             所有的错误将会以异常的形式给出
     * @see #search(RDFQuery)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>181</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l181s0' title='Executions: 0' class='uncovered'>public QueryResult search(RequestContext requestContext, @NonNull RDFQuery rdfQuery) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>182</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l182s0' title='Executions: 0' class='uncovered'>if (requestContext == null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>183</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l183s0'>            requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>184</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>185</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l185s0'>        requestContext.setRpcMethodName(RequestContext.RpcMethodSet.RDF.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>186</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l186s0'>        requestContext.startRpc(config.isAutoNewTrace());</pre></td>
    </tr>
    <tr>
      <td class='line'>187</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l187s0'>        requestContext.beginQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>188</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l188s0'>        StringBuilder ss = new StringBuilder();</pre></td>
    </tr>
    <tr>
      <td class='line'>189</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l189s0'>        ss.append(config.getPgConfig().getConfigString()).append("&&");</pre></td>
    </tr>
    <tr>
      <td class='line'>190</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l190s0'>        ss.append(rdfQuery.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>191</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l191s0'>        String requestContent = buildSearchRequest(ss.toString(), Type.RDF.toString(), Type.RDF,</pre></td>
    </tr>
    <tr>
      <td class='line'>192</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                requestContext.getTraceId(), requestContext.getRpcId());</pre></td>
    </tr>
    <tr>
      <td class='line'>193</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l193s0'>        requestContext.setRequestContent(requestContent);</pre></td>
    </tr>
    <tr>
      <td class='line'>194</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l194s0'>        requestContext.endQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>195</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l195s0'>        requestContext.setServerAddress(getSearchHost());</pre></td>
    </tr>
    <tr>
      <td class='line'>196</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l196s0'>        requestContext.setTraceInHeader(config.isTraceInHeader());</pre></td>
    </tr>
    <tr>
      <td class='line'>197</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l197s0'>        QueryResult queryResult = requester.sendSearchRequest(requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>198</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l198s0' title='Executions: 0' class='uncovered'>if (log.isDebugEnabled())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>199</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l199s0'>            log.debug("search finished, with requestContext:[{}]", requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>200</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>201</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l201s0'>        return queryResult;</pre></td>
    </tr>
    <tr>
      <td class='line'>202</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * @param customizedQuery
     *            用户自定义的请求
     * @return 请求结果
     * @throws Exception
     *             所有的错误将会以异常的形式给出
     * @see #search(RequestContext, CustomizedQuery)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>212</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l212s0' title='Executions: 0' class='uncovered'>public QueryResult search(@NonNull CustomizedQuery customizedQuery) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>213</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l213s0'>        return search(null, customizedQuery);</pre></td>
    </tr>
    <tr>
      <td class='line'>214</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * @param requestContext
     *            与这次请求相关的Context
     * @param customizedQuery
     *            用户自定义的请求
     * @return 请求结果
     * @throws Exception
     *             所有的错误将会以异常的形式给出
     * @see #search(CustomizedQuery)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>226</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l226s0' title='Executions: 0' class='uncovered'>public QueryResult search(RequestContext requestContext, @NonNull CustomizedQuery customizedQuery) throws Exception {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>227</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l227s0' title='Executions: 0' class='uncovered'>if (requestContext == null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>228</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l228s0'>            requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>229</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>230</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l230s0'>        requestContext.setRpcMethodName(RequestContext.RpcMethodSet.CUSTOM.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>231</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l231s0'>        requestContext.startRpc(config.isAutoNewTrace());</pre></td>
    </tr>
    <tr>
      <td class='line'>232</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l232s0'>        requestContext.beginQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>233</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l233s0'>        String requestContent = buildSearchRequest(customizedQuery.toString(), customizedQuery.getAppName(),</pre></td>
    </tr>
    <tr>
      <td class='line'>234</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                Type.CUSTOMIZED,</pre></td>
    </tr>
    <tr>
      <td class='line'>235</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                requestContext.getTraceId(), requestContext.getRpcId());</pre></td>
    </tr>
    <tr>
      <td class='line'>236</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l236s0'>        requestContext.setRequestContent(requestContent);</pre></td>
    </tr>
    <tr>
      <td class='line'>237</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l237s0'>        requestContext.endQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>238</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l238s0'>        requestContext.setServerAddress(getSearchHost());</pre></td>
    </tr>
    <tr>
      <td class='line'>239</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l239s0'>        requestContext.setTraceInHeader(config.isTraceInHeader());</pre></td>
    </tr>
    <tr>
      <td class='line'>240</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l240s0'>        QueryResult queryResult = requester.sendSearchRequest(requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>241</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l241s0' title='Executions: 0' class='uncovered'>if (log.isDebugEnabled())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>242</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l242s0'>            log.debug("search finished, with requestContext:[{}]", requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>243</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>244</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l244s0'>        return queryResult;</pre></td>
    </tr>
    <tr>
      <td class='line'>245</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KV结构的table有效）
     * 
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param value
     *            pkey对应value的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(RequestContext, String, String, String)
     * @see #multipleUpdate(String, Map)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>261</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l261s0' title='Executions: 0' class='uncovered'>public void update(@NonNull String table, @NonNull String pkey, @NonNull String value) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>262</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l262s0'>        doUpdate(null, UpdateType.SET, table, pkey, null, value);</pre></td>
    </tr>
    <tr>
      <td class='line'>263</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l263s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KV结构的table有效）
     * 
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param value
     *            pkey对应value的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String)
     * @see #multipleUpdate(String, Map)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>281</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l281s0' title='Executions: 0' class='uncovered'>public void update(RequestContext requestContext, @NonNull String table, @NonNull String pkey, @NonNull String value)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>282</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>283</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l283s0'>        doUpdate(requestContext, UpdateType.SET, table, pkey, null, value);</pre></td>
    </tr>
    <tr>
      <td class='line'>284</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l284s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值
     * @param value
     *            (pkey, skey)对应value的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(RequestContext, String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>301</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l301s0' title='Executions: 0' class='uncovered'>public void update(@NonNull String table, @NonNull String pkey, @NonNull String skey, @NonNull String value)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>302</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>303</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l303s0'>        doUpdate(null, UpdateType.SET, table, pkey, skey, value);</pre></td>
    </tr>
    <tr>
      <td class='line'>304</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l304s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值
     * @param value
     *            (pkey, skey)对应value的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>323</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l323s0' title='Executions: 0' class='uncovered'>public void update(RequestContext requestContext, @NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>324</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>            <span id='l324s0' title='Executions: 0' class='uncovered'>@NonNull String skey, @NonNull String value) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>325</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l325s0'>        doUpdate(requestContext, UpdateType.SET, table, pkey, skey, value);</pre></td>
    </tr>
    <tr>
      <td class='line'>326</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l326s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KV结构的table有效）
     *
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>341</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l341s0' title='Executions: 0' class='uncovered'>public void updatePartial(@NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>342</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                              <span id='l342s0' title='Executions: 0' class='uncovered'>@NonNull Map&lt;String, String> value_map)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>343</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>344</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l344s0'>        doUpdateSchema(null, UpdateType.UPDATE, table, pkey, null, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>345</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l345s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>362</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l362s0' title='Executions: 0' class='uncovered'>public void updatePartial(@NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>363</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                              <span id='l363s0' title='Executions: 0' class='uncovered'>@NonNull String skey, @NonNull Map&lt;String, String> value_map)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>364</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>365</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l365s0'>        doUpdateSchema(null, UpdateType.UPDATE, table, pkey, skey, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>366</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l366s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>383</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l383s0' title='Executions: 0' class='uncovered'>public void updatePartial(RequestContext requestContext, @NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>384</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                              <span id='l384s0' title='Executions: 0' class='uncovered'>@NonNull Map&lt;String, String> value_map) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>385</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l385s0'>        doUpdateSchema(requestContext, UpdateType.UPDATE, table, pkey, null, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>386</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l386s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值, 若没有skey,设为null
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>406</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l406s0' title='Executions: 0' class='uncovered'>public void updatePartial(RequestContext requestContext, @NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>407</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                              <span id='l407s0' title='Executions: 0' class='uncovered'>@NonNull String skey, @NonNull Map&lt;String, String> value_map) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>408</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l408s0'>        doUpdateSchema(requestContext, UpdateType.UPDATE, table, pkey, skey, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>409</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l409s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的kv结构的table有效）
     *
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>424</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l424s0' title='Executions: 0' class='uncovered'>public void update(@NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>425</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                       <span id='l425s0' title='Executions: 0' class='uncovered'>@NonNull Map&lt;String, String> value_map) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>426</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l426s0'>        doUpdateSchema(null, UpdateType.SET, table, pkey, null, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>427</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l427s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>444</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l444s0' title='Executions: 0' class='uncovered'>public void update(RequestContext requestContext, @NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>445</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                       <span id='l445s0' title='Executions: 0' class='uncovered'>@NonNull Map&lt;String, String> value_map) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>446</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l446s0'>        doUpdateSchema(requestContext, UpdateType.SET, table, pkey, null, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>447</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l447s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>466</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l466s0' title='Executions: 0' class='uncovered'>public void update(@NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>467</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                       <span id='l467s0' title='Executions: 0' class='uncovered'>@NonNull String skey, @NonNull Map&lt;String, String> value_map) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>468</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l468s0'>        doUpdateSchema(null, UpdateType.SET, table, pkey, skey, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>469</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l469s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 更新igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值
     * @param value_map
     *            (pkey, skey)对应value的值,schema表示
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>488</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l488s0' title='Executions: 0' class='uncovered'>public void update(RequestContext requestContext, @NonNull String table, @NonNull String pkey,</span></pre></td>
    </tr>
    <tr>
      <td class='line'>489</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>                       <span id='l489s0' title='Executions: 0' class='uncovered'>@NonNull String skey, @NonNull Map&lt;String, String> value_map) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>490</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l490s0'>        doUpdateSchema(requestContext, UpdateType.SET, table, pkey, skey, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>491</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l491s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 批量更新igraph中的数据（仅对开启增量的 KV结构的table有效）
     * 
     * @param table
     *            表名
     * @param pkeyValueMap
     *            (pkey, value)对
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String)
     * @see #update(RequestContext, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>505</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l505s0' title='Executions: 0' class='uncovered'>public void multipleUpdate(@NonNull String table, @NonNull Map&lt;String, String> pkeyValueMap)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>506</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>507</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l507s0'>        RequestContext requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>508</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l508s0'>        List&lt;IGraphUpdateException> exceptions = new ArrayList&lt;IGraphUpdateException>();</pre></td>
    </tr>
    <tr>
      <td class='line'>509</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l509s0' title='Executions: 0' class='uncovered'>for (Map.Entry&lt;String, String> entry</span> : <span id='l509s1' title='Executions: 0' class='uncovered'>pkeyValueMap.entrySet())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>510</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l510s0'>            requestContext.clear();</pre></td>
    </tr>
    <tr>
      <td class='line'>511</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            try {</pre></td>
    </tr>
    <tr>
      <td class='line'>512</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l512s0'>                doUpdate(requestContext, UpdateType.SET, table, entry.getKey(), null, entry.getValue());</pre></td>
    </tr>
    <tr>
      <td class='line'>513</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l513s0'>            } catch (IGraphUpdateException e) {</pre></td>
    </tr>
    <tr>
      <td class='line'>514</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l514s0'>                exceptions.add(e);</pre></td>
    </tr>
    <tr>
      <td class='line'>515</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l515s0'>                log.error("Failed to update with requestContext:[{}]", requestContext, e);</pre></td>
    </tr>
    <tr>
      <td class='line'>516</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l516s0'>            }</pre></td>
    </tr>
    <tr>
      <td class='line'>517</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>518</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l518s0' title='Executions: 0' class='uncovered'>if (!exceptions.isEmpty())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>519</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l519s0'>            throw new IGraphUpdateException("multipleUpdate Failed with exceptions", exceptions);</pre></td>
    </tr>
    <tr>
      <td class='line'>520</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>521</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l521s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 批量更新igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skeyValueMap
     *            (skey, value)对
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #update(String, String, String, String)
     * @see #update(RequestContext, String, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>537</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l537s0' title='Executions: 0' class='uncovered'>public void multipleUpdate(@NonNull String table, @NonNull String pkey, @NonNull Map&lt;String, String> skeyValueMap)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>538</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>539</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l539s0'>        RequestContext requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>540</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l540s0'>        List&lt;IGraphUpdateException> exceptions = new ArrayList&lt;IGraphUpdateException>();</pre></td>
    </tr>
    <tr>
      <td class='line'>541</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l541s0' title='Executions: 0' class='uncovered'>for (Map.Entry&lt;String, String> entry</span> : <span id='l541s1' title='Executions: 0' class='uncovered'>skeyValueMap.entrySet())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>542</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l542s0'>            requestContext.clear();</pre></td>
    </tr>
    <tr>
      <td class='line'>543</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            try {</pre></td>
    </tr>
    <tr>
      <td class='line'>544</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l544s0'>                doUpdate(requestContext, UpdateType.SET, table, pkey, entry.getKey(), entry.getValue());</pre></td>
    </tr>
    <tr>
      <td class='line'>545</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l545s0'>            } catch (IGraphUpdateException e) {</pre></td>
    </tr>
    <tr>
      <td class='line'>546</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l546s0'>                exceptions.add(e);</pre></td>
    </tr>
    <tr>
      <td class='line'>547</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l547s0'>                log.error("Failed to update with requestContext:[{}]", requestContext, e);</pre></td>
    </tr>
    <tr>
      <td class='line'>548</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l548s0'>            }</pre></td>
    </tr>
    <tr>
      <td class='line'>549</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>550</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l550s0' title='Executions: 0' class='uncovered'>if (!exceptions.isEmpty())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>551</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l551s0'>            throw new IGraphUpdateException("multipleUpdate Failed with exceptions", exceptions);</pre></td>
    </tr>
    <tr>
      <td class='line'>552</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>553</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l553s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 删除igraph中的数据（仅对开启增量的 KV结构的table有效）
     * 
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #delete(RequestContext, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>566</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l566s0' title='Executions: 0' class='uncovered'>public void delete(@NonNull String table, @NonNull String pkey) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>567</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l567s0'>        doUpdate(null, UpdateType.DELETE, table, pkey, null, null);</pre></td>
    </tr>
    <tr>
      <td class='line'>568</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l568s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 删除igraph中的数据（仅对开启增量的 KV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #delete(String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>583</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l583s0' title='Executions: 0' class='uncovered'>public void delete(RequestContext requestContext, @NonNull String table, @NonNull String pkey)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>584</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>585</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l585s0'>        doUpdate(requestContext, UpdateType.DELETE, table, pkey, null, null);</pre></td>
    </tr>
    <tr>
      <td class='line'>586</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l586s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 删除igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #delete(RequestContext, String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>601</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l601s0' title='Executions: 0' class='uncovered'>public void delete(@NonNull String table, @NonNull String pkey, @NonNull String skey) throws IGraphUpdateException {</span></pre></td>
    </tr>
    <tr>
      <td class='line'>602</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l602s0'>        doUpdate(null, UpdateType.DELETE, table, pkey, skey, null);</pre></td>
    </tr>
    <tr>
      <td class='line'>603</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l603s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * 删除igraph中的数据（仅对开启增量的 KKV结构的table有效）
     *
     * @param requestContext
     *            与这次请求相关的Context
     * @param table
     *            表名
     * @param pkey
     *            pkey的值
     * @param skey
     *            skey的值
     * @throws IGraphUpdateException
     *             更新失败时，会抛出异常
     * @see #delete(String, String, String)
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>620</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>    <span id='l620s0' title='Executions: 0' class='uncovered'>public void delete(RequestContext requestContext, @NonNull String table, @NonNull String pkey, @NonNull String skey)</span></pre></td>
    </tr>
    <tr>
      <td class='line'>621</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>622</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l622s0'>        doUpdate(requestContext, UpdateType.DELETE, table, pkey, skey, null);</pre></td>
    </tr>
    <tr>
      <td class='line'>623</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l623s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>625</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    public IGraphClientConfig getConfig() {</pre></td>
    </tr>
    <tr>
      <td class='line'>626</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l626s0'>        return config;</pre></td>
    </tr>
    <tr>
      <td class='line'>627</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'></td><td>&nbsp;</td>
      <td class='comment' onclick='showHideLines(this)'><div>    /**
     * use {@link #getConfig}.setSearchCluster() instead
     */</div><span>    /*...*/</span></td>
    </tr>
    <tr>
      <td class='line'>632</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    @Deprecated</pre></td>
    </tr>
    <tr>
      <td class='line'>633</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    public void setCluster(String cluster) {</pre></td>
    </tr>
    <tr>
      <td class='line'>634</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l634s0'>        config.setSearchCluster(cluster);</pre></td>
    </tr>
    <tr>
      <td class='line'>635</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l635s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>637</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    public void close() {</pre></td>
    </tr>
    <tr>
      <td class='line'>638</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l638s0'>        requester.close();</pre></td>
    </tr>
    <tr>
      <td class='line'>639</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l639s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>641</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private void doUpdate(RequestContext requestContext, UpdateType updateType, String table, String pkey, String skey,</pre></td>
    </tr>
    <tr>
      <td class='line'>642</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            String value) throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>643</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l643s0' title='Executions: 0' class='uncovered'>if (requestContext == null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>644</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l644s0'>            requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>645</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>646</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l646s0' title='Executions: 0' class='uncovered'>requestContext.setRpcMethodName(updateType.equals(UpdateType.SET)</span> ?</pre></td>
    </tr>
    <tr>
      <td class='line'>647</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                RequestContext.RpcMethodSet.SET.toString() : RequestContext.RpcMethodSet.DELETE.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>648</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l648s0'>        requestContext.startRpc(config.isAutoNewTrace());</pre></td>
    </tr>
    <tr>
      <td class='line'>649</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l649s0'>        requestContext.beginQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>650</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l650s0'>        String requestContent = buildUpdateRequest(updateType, table, pkey, skey, value);</pre></td>
    </tr>
    <tr>
      <td class='line'>651</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l651s0'>        requestContext.setRpcServiceName(RequestContext.RPC_UPDATER_NAME);</pre></td>
    </tr>
    <tr>
      <td class='line'>652</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l652s0'>        requestContext.setRequestContent(requestContent);</pre></td>
    </tr>
    <tr>
      <td class='line'>653</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l653s0'>        requestContext.endQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>654</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l654s0'>        requestContext.setServerAddress(getUpdateHost());</pre></td>
    </tr>
    <tr>
      <td class='line'>655</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l655s0'>        requestContext.setTraceInHeader(config.isTraceInHeader());</pre></td>
    </tr>
    <tr>
      <td class='line'>656</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l656s0'>        requester.sendUpdateRequest(requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>657</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l657s0' title='Executions: 0' class='uncovered'>if (log.isDebugEnabled())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>658</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l658s0'>            log.debug("update finished, with requestContext:[{}]", requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>659</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>660</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l660s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>662</td><td>&nbsp;</td>
      <td><pre class='comment'>    // append trace data in query if config isTraceInHeader is false</pre></td>
    </tr>
    <tr>
      <td class='line'>663</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private StringBuilder appendTraceId(StringBuilder ss, String traceId, String rpcId) {</pre></td>
    </tr>
    <tr>
      <td class='line'>664</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>        <span id='l664s0' title='Executions: 1' class='covered'>if (config.isTraceInHeader()</span> || <span id='l664s1' title='Executions: 0' class='uncovered'>traceId.isEmpty()</span> || <span id='l664s2' title='Executions: 0' class='uncovered'>rpcId.isEmpty())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>665</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l665s0'>            return ss;</pre></td>
    </tr>
    <tr>
      <td class='line'>666</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        } else {</pre></td>
    </tr>
    <tr>
      <td class='line'>667</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l667s0'>            ss.append("&").append(KEY_TRACE_ID).append("=").append(traceId)</pre></td>
    </tr>
    <tr>
      <td class='line'>668</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                .append("&").append(KEY_RPC_ID).append("=").append(rpcId);</pre></td>
    </tr>
    <tr>
      <td class='line'>669</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l669s0'>            return ss;</pre></td>
    </tr>
    <tr>
      <td class='line'>670</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>671</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>673</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private void doUpdateSchema(RequestContext requestContext, UpdateType updateType, String table, String pkey, String skey,</pre></td>
    </tr>
    <tr>
      <td class='line'>674</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                                Map&lt;String, String> value_map) throws IGraphUpdateException {</pre></td>
    </tr>
    <tr>
      <td class='line'>675</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l675s0' title='Executions: 0' class='uncovered'>if (requestContext == null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>676</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l676s0'>            requestContext = new RequestContext();</pre></td>
    </tr>
    <tr>
      <td class='line'>677</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>678</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l678s0'>        switch (updateType) {</pre></td>
    </tr>
    <tr>
      <td class='line'>679</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            case SET:</pre></td>
    </tr>
    <tr>
      <td class='line'>680</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l680s0'>                requestContext.setRpcMethodName(RequestContext.RpcMethodSet.SET.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>681</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l681s0'>                break;</pre></td>
    </tr>
    <tr>
      <td class='line'>682</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            case UPDATE:</pre></td>
    </tr>
    <tr>
      <td class='line'>683</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l683s0'>                requestContext.setRpcMethodName(RequestContext.RpcMethodSet.UPDATE.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>684</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l684s0'>                break;</pre></td>
    </tr>
    <tr>
      <td class='line'>685</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            case DELETE:</pre></td>
    </tr>
    <tr>
      <td class='line'>686</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l686s0'>                requestContext.setRpcMethodName(RequestContext.RpcMethodSet.DELETE.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>687</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l687s0'>                break;</pre></td>
    </tr>
    <tr>
      <td class='line'>688</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            case INCREMENT:</pre></td>
    </tr>
    <tr>
      <td class='line'>689</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l689s0'>                requestContext.setRpcMethodName(RequestContext.RpcMethodSet.INCREMENT.toString());</pre></td>
    </tr>
    <tr>
      <td class='line'>690</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                break;</pre></td>
    </tr>
    <tr>
      <td class='line'>691</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>692</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l692s0'>        requestContext.startRpc(config.isAutoNewTrace());</pre></td>
    </tr>
    <tr>
      <td class='line'>693</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l693s0'>        requestContext.beginQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>694</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l694s0'>        String requestContent = buildUpdateRequest(updateType, table, pkey, skey, value_map);</pre></td>
    </tr>
    <tr>
      <td class='line'>695</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l695s0'>        requestContext.setRpcServiceName(RequestContext.RPC_UPDATER_NAME);</pre></td>
    </tr>
    <tr>
      <td class='line'>696</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l696s0'>        requestContext.setRequestContent(requestContent);</pre></td>
    </tr>
    <tr>
      <td class='line'>697</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l697s0'>        requestContext.endQueryEncode();</pre></td>
    </tr>
    <tr>
      <td class='line'>698</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l698s0'>        requestContext.setServerAddress(getUpdateHost());</pre></td>
    </tr>
    <tr>
      <td class='line'>699</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l699s0'>        requestContext.setTraceInHeader(config.isTraceInHeader());</pre></td>
    </tr>
    <tr>
      <td class='line'>700</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l700s0'>        requester.sendUpdateRequest(requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>701</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l701s0' title='Executions: 0' class='uncovered'>if (log.isDebugEnabled())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>702</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l702s0'>            log.debug("update finished, with requestContext:[{}]", requestContext);</pre></td>
    </tr>
    <tr>
      <td class='line'>703</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>704</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l704s0'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>706</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private String buildSearchRequest(String queryString, String appName, Type type,</pre></td>
    </tr>
    <tr>
      <td class='line'>707</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                String traceId, String rpcId) {</pre></td>
    </tr>
    <tr>
      <td class='line'>708</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l708s0'>        StringBuilder ss = new StringBuilder(128);</pre></td>
    </tr>
    <tr>
      <td class='line'>709</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l709s0'>        ss.append("/app?app=").append(appName).append("&src=").append(config.getSrc()).append("&ip=")</pre></td>
    </tr>
    <tr>
      <td class='line'>710</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                .append(config.getLocalAddress());</pre></td>
    </tr>
    <tr>
      <td class='line'>711</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l711s0'>        appendTraceId(ss, traceId, rpcId);</pre></td>
    </tr>
    <tr>
      <td class='line'>712</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>        <span id='l712s0' title='Executions: 1' class='covered'>if (type == Type.CUSTOMIZED)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>713</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l713s0'>            ss.append('&').append(queryString);</pre></td>
    </tr>
    <tr>
      <td class='line'>714</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        } else {</pre></td>
    </tr>
    <tr>
      <td class='line'>715</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l715s0'>            ss.append('?').append(URLCodecUtil.encode(queryString));</pre></td>
    </tr>
    <tr>
      <td class='line'>716</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>717</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l717s0'>        return ss.toString();</pre></td>
    </tr>
    <tr>
      <td class='line'>718</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>720</td><td>&nbsp;</td>
      <td><pre class='comment'>    // not support passing eagleeye trace info to igraph updater yet</pre></td>
    </tr>
    <tr>
      <td class='line'>721</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private String buildUpdateRequest(UpdateType updateType, String table, String pkey, String skey, String value) {</pre></td>
    </tr>
    <tr>
      <td class='line'>722</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l722s0'>        StringBuilder builder = new StringBuilder(128);</pre></td>
    </tr>
    <tr>
      <td class='line'>723</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l723s0'>        builder.append("/update?").append("table=").append(table).append("&type=").append(updateType.getValue())</pre></td>
    </tr>
    <tr>
      <td class='line'>724</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                .append("&pkey=").append(URLCodecUtil.encode(pkey));</pre></td>
    </tr>
    <tr>
      <td class='line'>725</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l725s0' title='Executions: 0' class='uncovered'>if (skey != null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>726</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l726s0'>            builder.append("&skey=").append(URLCodecUtil.encode(skey));</pre></td>
    </tr>
    <tr>
      <td class='line'>727</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>728</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l728s0' title='Executions: 0' class='uncovered'>if (value != null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>729</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l729s0'>            builder.append("&value=").append(URLCodecUtil.encode(value));</pre></td>
    </tr>
    <tr>
      <td class='line'>730</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>731</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l731s0'>        return builder.toString();</pre></td>
    </tr>
    <tr>
      <td class='line'>732</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>734</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private String buildUpdateRequest(UpdateType updateType, String table, String pkey, String skey, Map&lt;String, String> value_map) {</pre></td>
    </tr>
    <tr>
      <td class='line'>735</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l735s0'>        StringBuilder builder = new StringBuilder(128);</pre></td>
    </tr>
    <tr>
      <td class='line'>736</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l736s0'>        builder.append("/update?").append("table=").append(table).append("&type=").append(updateType.getValue())</pre></td>
    </tr>
    <tr>
      <td class='line'>737</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                .append("&pkey=").append(URLCodecUtil.encode(pkey));</pre></td>
    </tr>
    <tr>
      <td class='line'>738</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l738s0' title='Executions: 0' class='uncovered'>if (skey != null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>739</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l739s0'>            builder.append("&skey=").append(URLCodecUtil.encode(skey));</pre></td>
    </tr>
    <tr>
      <td class='line'>740</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>741</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l741s0'>        Iterator iter = value_map.entrySet().iterator();</pre></td>
    </tr>
    <tr>
      <td class='line'>742</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l742s0' title='Executions: 0' class='uncovered'>while (iter.hasNext())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>743</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l743s0'>            Map.Entry entry = (Map.Entry) iter.next();</pre></td>
    </tr>
    <tr>
      <td class='line'>744</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l744s0'>            builder.append("&").append(entry.getKey()).append("=");</pre></td>
    </tr>
    <tr>
      <td class='line'>745</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>            <span id='l745s0' title='Executions: 0' class='uncovered'>if (entry.getValue() != null)</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>746</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l746s0'>                builder.append(URLCodecUtil.encode(entry.getValue().toString()));</pre></td>
    </tr>
    <tr>
      <td class='line'>747</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>            }</pre></td>
    </tr>
    <tr>
      <td class='line'>748</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l748s0'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>749</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l749s0'>        return builder.toString();</pre></td>
    </tr>
    <tr>
      <td class='line'>750</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>752</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private String getSearchHost() {</pre></td>
    </tr>
    <tr>
      <td class='line'>753</td><td class='count'>1</td>
      <td><pre class='prettyprint jmp'>        <span id='l753s0' title='Executions: 1' class='covered'>if (config.isDaily())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>754</td><td class='count'>1</td>
      <td><pre class='prettyprint covered' id='l754s0'>            return new StringBuilder(128).append("http://").append(config.getSearchDomain()).toString();</pre></td>
    </tr>
    <tr>
      <td class='line'>755</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>756</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l756s0'>        Host searchHost = getHostFromVipServer(config.getSearchDomain(), config.getSearchCluster());</pre></td>
    </tr>
    <tr>
      <td class='line'>757</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l757s0'>        return new StringBuilder(128).append("http://").append(searchHost.getIp()).append(":")</pre></td>
    </tr>
    <tr>
      <td class='line'>758</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                .append(searchHost.getPort()).toString();</pre></td>
    </tr>
    <tr>
      <td class='line'>759</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>761</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private String getUpdateHost() {</pre></td>
    </tr>
    <tr>
      <td class='line'>762</td><td class='count'>0</td>
      <td><pre class='prettyprint jmp'>        <span id='l762s0' title='Executions: 0' class='uncovered'>if (config.isDaily())</span> {</pre></td>
    </tr>
    <tr>
      <td class='line'>763</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l763s0'>            return new StringBuilder(128).append("http://").append(config.getUpdateDomain()).toString();</pre></td>
    </tr>
    <tr>
      <td class='line'>764</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>765</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l765s0'>        Host updateHost = getHostFromVipServer(config.getUpdateDomain(), config.getUpdateCluster());</pre></td>
    </tr>
    <tr>
      <td class='line'>766</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l766s0'>        return new StringBuilder(128).append("http://").append(updateHost.getIp()).append(":")</pre></td>
    </tr>
    <tr>
      <td class='line'>767</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>                .append(updateHost.getPort()).toString();</pre></td>
    </tr>
    <tr>
      <td class='line'>768</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>770</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    private Host getHostFromVipServer(String domain, String cluster) {</pre></td>
    </tr>
    <tr>
      <td class='line'>771</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        Host srvHost;</pre></td>
    </tr>
    <tr>
      <td class='line'>772</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        try {</pre></td>
    </tr>
    <tr>
      <td class='line'>773</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l773s0'>            srvHost = VIPClient.srvHost(domain, cluster);</pre></td>
    </tr>
    <tr>
      <td class='line'>774</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l774s0'>        } catch (Exception e) {</pre></td>
    </tr>
    <tr>
      <td class='line'>775</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l775s0'>            throw new VIPServerException("get ip from vipServer failed: dom:" + domain + " cluster:" + cluster, e);</pre></td>
    </tr>
    <tr>
      <td class='line'>776</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l776s0'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>777</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l777s0'>        return srvHost;</pre></td>
    </tr>
    <tr>
      <td class='line'>778</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>780</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l780s0'>    enum UpdateType {</pre></td>
    </tr>
    <tr>
      <td class='line'>781</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        SET(1), DELETE(2), INCREMENT(3), UPDATE(4);</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>783</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        private int value;</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>785</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l785s0'>        UpdateType(int value) {</pre></td>
    </tr>
    <tr>
      <td class='line'>786</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l786s0'>            this.value = value;</pre></td>
    </tr>
    <tr>
      <td class='line'>787</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l787s0'>        }</pre></td>
    </tr>
    <tr><td class='line'></td><td colspan='2'>&nbsp;</td></tr>
    <tr>
      <td class='line'>789</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        public int getValue() {</pre></td>
    </tr>
    <tr>
      <td class='line'>790</td><td class='count'>0</td>
      <td><pre class='prettyprint uncovered' id='l790s0'>            return value;</pre></td>
    </tr>
    <tr>
      <td class='line'>791</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>        }</pre></td>
    </tr>
    <tr>
      <td class='line'>792</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>    }</pre></td>
    </tr>
    <tr>
      <td class='line'>793</td><td>&nbsp;</td>
      <td><pre class='prettyprint'>}</pre></td>
    </tr>
  </table>
</body>
</html>
